package cn.edu.sdjzu.xg.eagle.xg23_kcsj_01.mapper;

import cn.edu.sdjzu.xg.eagle.xg23_kcsj_01.entity.SoftwareCopyright;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 * 软著Mapper接口
 */
@Component
public interface SoftwareCopyrightMapper {
    /**
     * 根据条件查询软著列表
     * @param params 查询条件
     * @return 软著列表
     */
    List<SoftwareCopyright> list(Map<String, Object> params);

    /**
     * 根据ID查询软著
     * @param id 软著ID
     * @return 软著信息
     */
    SoftwareCopyright getById(Integer id);

    /**
     * 新增软著
     * @param SoftwareCopyright 软著信息
     * @return 影响行数
     */
    int insert(SoftwareCopyright SoftwareCopyright);

    /**
     * 更新软著
     * @param SoftwareCopyright 软著信息
     * @return 影响行数
     */
    int update(SoftwareCopyright SoftwareCopyright);

    /**
     * 删除软著
     * @param id 软著ID
     * @return 影响行数
     */
    int delete(Integer id);

    /**
     * 批量更新状态
     * @param params 参数，包含ids和status
     * @return 影响行数
     */
    int batchUpdateStatus(Map<String, Object> params);

    /**
     * 添加软著申报人关联
     * @param SoftwareCopyrightId 软著ID
     * @param EmployeeId 教师ID
     * @param position 位次
     * @return 影响行数
     */
    int insertSoftwareCopyrightEmployee(Integer SoftwareCopyrightId, Integer EmployeeId, Integer position);

    /**
     * 删除软著申报人关联
     * @param SoftwareCopyrightId 软著ID
     * @return 影响行数
     */
    int deleteSoftwareCopyrightEmployee(Integer SoftwareCopyrightId);

    /**
     * 查询软著申报人
     * @param SoftwareCopyrightId 软著ID
     * @return 申报人列表
     */
    List<Map<String, Object>> listSoftwareCopyrightEmployees(Integer SoftwareCopyrightId);

    void insertSoftwareCopyrightEmployee(Integer id, Integer integer, int i);
}
